package es.juanc.reflect;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class PruebasReflexion 
{

	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{

// AccCommissions c = new AccCommissions();
// AccCommissionsId id = new AccCommissionsId();
// id.setId(2);
// c.setId( id );
// c.setContavalDate( new Date() );
// c.setConceptSelCode( "tu puta madre" );
//						
// System.out.println( "\n/* " + getWhere( c ) + "*/" );
		
		Class clase;
	    Field campo, campos[];
	    Method metodo, metodos[];

	    try {
		    // Cargamos la clase
		    clase = Class.forName("es.rbcdexia.acc.model.beans.Balance");
		
		    // Recorremos los campos
		    System.out.println("Lista de campos:\n");
		    campos = clase.getFields();
		    for (int i=0; i < campos.length; i++) {
			    campo = campos[i];
			    System.out.println("\t" + campo.getName());
		    }
		
		    // Recorremos los metodos
		    System.out.println("\nLista de metodos:\n");
		    metodos = clase.getMethods();
		    for (int i=0; i < metodos.length; i++) {
			    metodo = metodos[i];
			    System.out.println("\t" + metodo.getName());
		    }
		} catch (ClassNotFoundException e) {
			System.out.println("No se ha encontrado la clase. " + e);
	    }
	}		
	
	
// public static String getWhere( Serializable bean )
// {
//		
// Class beanClass;
// StringBuilder where = new StringBuilder();
//		
// try
// {
//		
// beanClass = Class.forName( bean.getClass().getName() );
//			
// for( int i = 0 ; i < beanClass.getMethods().length ; i++ )
// {
// if( beanClass.getMethods()[i].getName().startsWith( "get" ) &&
// !beanClass.getMethods()[i].getName().equals( "getClass" ) &&
// beanClass.getMethods()[i].invoke(bean, null) != null )
// {
// if( where.length() == 0 )
// where.append( "where " );
// else
// where.append( " and " );
//						
// System.out.println( beanClass.getMethods()[i].getName()
// + " - " + beanClass.getMethods()[i].invoke( bean , null )
// + " - " + beanClass.getMethods()[i].getGenericReturnType().toString() );
//					
// where.append(
// beanClass.getMethods()[i].getName().substring(3,4).toLowerCase()
// .concat( beanClass.getMethods()[i].getName().substring(4) )
// .concat( "=" )
// .concat( beanClass.getMethods()[i].invoke(bean, null).toString() ) );
// }
// }
//			
// }
// catch( Exception e )
// {
// e.printStackTrace();
// }
//		
// return where.toString();
// }

}
